公司地址:茂名市人民南路新村大院22號101
電話:13592986386
發(fā)布時間:2024/8/18 21:03:18
init.py 是一個空文件,表示當前目錄news可以當作一個python包使用。
tests.py 文件用于開發(fā)測試用例,在實際開發(fā)中會有專門的測試人員,這個事情不需要我們來
做。
models.py 文件跟數(shù)據(jù)庫操作相關(guān)。
views.py 文件跟接收瀏覽器請求,進行處理,返回頁面相關(guān)。
admin.py 文件跟網(wǎng)站的后臺管理相關(guān)。
migrations 數(shù)據(jù)庫遷移文件。
3.1 settings介紹
django項目創(chuàng)建后,在主應用中,會有一個settings.py文件,這個就是該項目的配置文件
settings文件包含Django安裝的所有配置
settings文件是一個包含模塊級變量的python模塊,所以該模塊本身必須符合python規(guī)則,并且可以使用python的語法
settings中的所有配置項的key必須全部大寫
settings中每一個配置項都有默認值,默認配置內(nèi)容在django/conf/global_settings.py中可以查看到,項目中不需要導入該模塊,django框架會自動獲取
settings中可以添加自定義的配置項
————————————————
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。
原文鏈接:https://blog.csdn.net/weixin_46264660/article/details/141087465
對于一個python項目,里面的每一個文件夾都可以認為是一個package,而每一個.py文件被認為是一個module。如果你用的IDE是PyCharm,
那么當你新建一個Python Package的時候,PyCharm都會自動為你新建一個__init__.py文件。這個__init__.py文件可以看作這個package的初始化文件,
具體用途且看下文。
__init__.py文件在做什么
這說明__init__.py中的代碼被執(zhí)行了。如果把demo.py中的 import package 換成import package.module也是一樣的結(jié)果。這說明,
當我們從一個package里面調(diào)用東西的時候,該__init__.py文件內(nèi)的代碼會被首先執(zhí)行。
__init__.py文件有什么用?
3.1 簡化import語法
假設(shè)在module.py文件中有一個函數(shù)a_function()如下
# module.py
def a_function():
print("Test function is called!")
如果我現(xiàn)在想從demo.py中調(diào)用它,沒有__init__.py文件的話,只能這么寫(方法一)
# __init__.py
from package.module import a_function
但是我可以在__init__.py中進行如下定義
# demo.py
from package import a_function
a_function()
好像也沒簡潔到哪兒去?試想,如果你在package里面有幾十個module,那么當你想調(diào)用這幾十個module里面的幾十上百個函數(shù)的時候,
你就需要在demo.py文件中寫幾十行import語句,這樣無疑是不簡潔的。而采用方法二的辦法,你就可以把這些import語句統(tǒng)統(tǒng)放進__init__.py文件。
但這不是__init__.py最重要的用途,最重要的是下面兩點。
3.2 批量導入和規(guī)范化導入以及__all__
如果你在module.py中定義了很多函數(shù),你想在demo.py中調(diào)用,怎么辦呢?如module.py中有兩個函數(shù)
# module.py
def a_function_1():
print("Test function 1 is called!")
def a_function_2():
print("Test function 2 is called!")
先在__init__.py批量導入
from package.module import *
再在demo.py中批量導入
# demo.py
from package import *
a_function_1()
更優(yōu)雅一點可以調(diào)用__all__屬性,在__init__.py中定義可以被外界調(diào)用的類和方法,如
# __init__.py
__all__ = ['a_function_1'] # 這樣,在demo.py只能調(diào)用a_function_1方法
from package.module import *
這里舉的例子都是函數(shù)/方法,對于類來說,是一樣的。